The present invention relates to user-interactive object-oriented programming systems and particularly to such object-oriented programming systems which systems would be available to both programmers and interactive users in a networking environment such as the internet or equivalent proprietary or public networks.
The 1990""s decade has been marked by a societal technological revolution driven by the convergence of the data processing industry with the consumer electronics industry. Like all such revolutions, it unleased a great ripple effect of technological waves. The effect has in turn driven technologies which have been known and available but relatively quiescent over the years. Two of these technologies are the internet-related distribution and object-oriented programming systems. Both of these technologies are embodied in the object-oriented JAVA Programming system. The computer and communications industries have extensively participating in the development and continual upgrading of the Java system. For details and background with respect to the Java system, reference may be made to a typical text, xe2x80x9cJust JAVAxe2x80x9d, 2nd Edition, Peter van der Linden, Sun Microsystems, 1997. The convergence of the electronic entertainment and consumer industries with data processing exponentially accelerated the demand for wide ranging communications distribution channels and the World Wide Web or internet which had quietly existed for over a generation as an loose academic and government data distribution facility reached xe2x80x9ccritical massxe2x80x9d and commenced a period of phenomenal expansion which has not as yet abated.
With the expanded accessibility of tens of thousands of programmers to each other, not to mention to potential users of such programs via the expanded internet client base, an obvious need became apparent: cooperative programming systems wherein program developers could coact to continuously expand and enhance existing programs in a distributed programming environment. Also, users could readily obtain and apply these developed programs. Object-oriented programming which also had been virtually languishing for a generation offered the solution. With its potentially interchangeable objects or units within which both data attributes and functions were stored in a predefined uniform framework as well as the predefined object interfaces with each other, object-oriented programming systems have found acceptance as the programming system for the internet. In all areas of the data processing, communications as well as the electronic entertainment and consumer industries having anything to do with the internet, there has been a substantial movement to Java, the Sun Microsystems originated object-oriented programming system.
While the above described advantages of object-oriented programming with respect to the collective and cooperative programming are clear, there are potential disadvantages in a programming system where literally thousands of program developers and users are continually making changes in the programs dynamically. These changes generally involve changes in the data attributes, i.e., changes in the properties of the subject matter represented by the data in the object or in the methods of handling data, also stored in the object.
It often happens that after an object oriented program has been dispensed and distributed widely via networks or otherwise, a need arises to add general purpose operations or functions to the program. While it has been conventionally possible to add such operations to programs prior to distribution, the object oriented programming technology has not been able to develop any convenient process whereby the new function could be added to the dispensed and distributed programs since a great many of these distributed would have had their attributes or methods changed by users xe2x80x9cdown the linexe2x80x9d. The present invention provides a solution by providing a means of adding general purpose operations and functions to existent object oriented programs which is object attribute independent. Also, this addition may be done dynamically to such existent programs.
The present invention relates to a computer controlled object oriented programming system having means for interfacing a plurality of programming objects with each other to provide combination objects combining programming functions of said objects in which each object includes predetermined interface data defining a required common interface with the other programming objects. A plurality of these objects, each have a framework comprising a plurality of data attributes and a method of manipulating said data attributes. These objects may be combined with each other via their common interfaces to form combination objects, and such combination objects may in turn be further combined with other objects and combination objects to form objects of increasing complexity which function as object oriented programs.
The present invention provides for the connecting of a new program object to an existing object which may vary in complexity from an initial object to a more complex object such as a combination object embodying a whole operative program. It provides a connecting object interfacing between the original object being connected to and the new program object. This connecting object includes means for detecting the occurrence of at least one selected condition in said original object, and means responsive to said detecting means for notifying the new object of said occurrence. The connecting object functions independently of the attributes and methods contained in the original object.
This new program object being connected performs general purpose operations with respect to the original object; it responds to the notification to perform functions in such operations. In addition, this new program object has the means which select of the selected conditions in the original object being responded to and also means for notifying the connecting object of the selection.
Before describing additional aspects of the invention, a brief explanation of xe2x80x9ceventsxe2x80x9d in object oriented programming is deemed appropriate. In general, an xe2x80x9ceventxe2x80x9d is the input of an action usually outside of the object to which the object may respond, e.g., a user interactive click of a button, mouse movement or key input. The object program being added to may be sufficiently sophisticated to have its own event handler object or the event data may just be directly stored. In any event, the original object being connected to may have some data which is event related. Thus, the selected condition in this original being responded to may involve event data in addition to data attribute changes or the object""s methods.